//package com.zmn.plat.admin.controller.part;
//
//import java.io.File;
//import java.util.ArrayList;
//import java.util.List;
//
//import javax.annotation.Resource;
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//
//import org.apache.commons.fileupload.FileUploadException;
//import org.apache.shiro.authz.annotation.RequiresPermissions;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.BeanUtils;
//import org.springframework.stereotype.Controller;
//import org.springframework.web.bind.annotation.RequestBody;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RequestParam;
//import org.springframework.web.bind.annotation.ResponseBody;
//import org.springframework.web.multipart.MultipartFile;
//
//import com.zmn.common.dictionary.GlobalDict;
//import com.zmn.common.dto.ResultDTO;
//import com.zmn.common.dto2.ResponseDTO;
//import com.zmn.common.utils.string.StringUtil;
//import com.zmn.plat.manager.dictionary.PartDict;
//import com.zmn.plat.model.entity.part.PartSku;
//import com.zmn.plat.model.entity.part.PartSkuPrice;
//import com.zmn.plat.model.vo.part.PartSkuVO;
//import com.zmn.plat.services.interfaces.part.PartImageUploadService;
//
///**
// * @author nowind
// * @since 17/06/12 16:35
// */
//@Controller
//@RequestMapping("/part/ajax")
//public class PartSkuModifyController extends PartBaseController {
//    private Logger logger = LoggerFactory.getLogger(this.getClass());
//
//    @Resource
//    private PartImageUploadService partUploadService;
//    @Resource
//    private EsPartSkuService esPartSkuService;
//
//    /**
//     * 描述:添加/修改配件Ajax方法
//     *
//     * @author DaiZhichao
//     * @since 2018/11/6 20:37
//     */
//    // region 修改
//    @RequestMapping(value = "/addEdit")
//    @ResponseBody
//    @RequiresPermissions("/part/ajax/addEdit.action")
//    public ResponseDTO addEdit(HttpServletRequest request, @RequestBody PartSkuVO partSkuVO) {
//        String msg = null;
//        partSkuVO.setName(partSkuVO.getName().trim());
//        partSkuVO.setFactoryName(partSkuVO.getFactoryName().trim());
//
//        PartSku partSku = new PartSku();
//        PartSkuPrice skuPrice = new PartSkuPrice();
//        BeanUtils.copyProperties(partSkuVO, partSku);
//        BeanUtils.copyProperties(partSkuVO, skuPrice);
//
//        if (partSku.getCategOneId() == 0) {
//            return ResponseDTO.fail("请选择配件一级分类！");
//        }
//
//        if (partSkuBService.findIdenticalPart(partSkuVO)) {
//            return ResponseDTO.fail("同一分类下不能有相同名字的配件！");
//        }
//
//        try {
//            partSku.setUpdater(getMcStaffName(request));
//
//            if (partSku.getSkuId() == 0) {
//                partSkuBService.insertSkuAndPrice(partSku, skuPrice, getMcStaff());
//                msg = PartDict.HINT_PART_NEW_SUCCESS;
//            } else {
//                partSkuBService.updateSkuAndPrice(partSku, skuPrice, getMcStaff());
//                msg = PartDict.HINT_PART_EDIT_SUCCESS;
//            }
//
//            return ResponseDTO.success(msg);
//
//        } catch (Exception e) {
//            logger.error(e.getMessage(), e);
//            return ResponseDTO.fail(PartDict.HINT_PART_OPERATING_FAILURE);
//        }
//    }
//    // endregion
//
//    // region 更改可用状态
//    @RequestMapping(value = "/updateStatus", produces = "application/json; charset=utf-8")
//    @RequiresPermissions("/part/ajax/updateStatus.action")
//    @ResponseBody
//    public ResponseDTO updateStatus(HttpServletRequest request, HttpServletResponse response,
//        @RequestParam(value = "ids[]") ArrayList<Integer> ids, @RequestParam(value = "status") int status) {
//        try {
//            partSkuService.updateStatusBatch(ids, status, getMcStaff());
//        } catch (Exception e) {
//            logger.error(e.getMessage(), e);
//            return ResponseDTO.fail(PartDict.HINT_PART_OPERATING_FAILURE);
//        }
//
//        return ResponseDTO.success(PartDict.HINT_PART_STATUS_EDIT_SUCCESS);
//    }
//
//    // endregion
//    @RequestMapping(value = "/disablebatch")
//    @RequiresPermissions("/part/ajax/updateStatus.action")
//    public ResponseDTO disableBatch(@RequestParam(value = "ids[]") List<Integer> ids) {
//        try {
//            partSkuService.updateStatusBatch(ids, GlobalDict.STATUS_DISABLE, getMcStaff());
//        } catch (Exception e) {
//            logger.error(e.getMessage(), e);
//            return ResponseDTO.fail(PartDict.HINT_PART_OPERATING_FAILURE);
//        }
//
//        return ResponseDTO.success(PartDict.HINT_PART_STATUS_EDIT_SUCCESS);
//    }
//
//    @RequestMapping(value = "/enablebatch")
//    @RequiresPermissions("/part/ajax/updateStatus.action")
//    public ResponseDTO enableBatch(@RequestBody List<Integer> ids) {
//        try {
//            partSkuService.updateStatusBatch(ids, GlobalDict.STATUS_ENABLE, getMcStaff());
//        } catch (Exception e) {
//            logger.error(e.getMessage(), e);
//            return ResponseDTO.fail(PartDict.HINT_PART_OPERATING_FAILURE);
//        }
//
//        return ResponseDTO.success(PartDict.HINT_PART_STATUS_EDIT_SUCCESS);
//    }
//
//    @RequestMapping(value = "/rebuildPartIndex")
//    // @RequiresPermissions("/part/ajax/rebuildPartIndex.action")
//    public ResponseDTO rebuildPartIndex() {
//        if (!esPartSkuService.iniPartSku()) {
//            return ResponseDTO.fail(PartDict.HINT_PART_OPERATING_FAILURE);
//        }
//        return ResponseDTO.success(PartDict.HINT_PART_INDEX_INIT_SUCCESS);
//    }
//
//    @RequestMapping(value = "/uploaderImage")
//    @ResponseBody
//    protected ResultDTO uploaderImage(MultipartFile file, @RequestParam("skuId") Integer skuId, @RequestParam("suffix") String suffix,
//        @RequestParam("param") String param) {
//        String imgUrl;
//        try {
//            String fileName = partUploadService.getFileName("part", skuId.toString(), suffix);
//            imgUrl = partUploadService.uploaderImage(file, fileName, PartDict.PART_UPLOAD_IMAGES_PATH);
//        } catch (FileUploadException e) {
//            logger.error(e.getMessage(), e);
//            return ResultDTO.resultError(PartDict.HINT_PART_UOPLOAD_IMAGE_FAILURE);
//        }
//        PartSku sku = new PartSku();
//        sku.setSkuId(skuId);
//        switch (suffix) {
//            case "img1":
//                sku.setImgSrc(imgUrl);
//                break;
//            case "img2":
//                sku.setImgSrc2(imgUrl);
//                break;
//            case "img3":
//                sku.setImgSrc3(imgUrl);
//                break;
//            case "img4":
//                sku.setImgSrc4(imgUrl);
//                break;
//            default:
//                return ResultDTO.resultError(PartDict.HINT_PART_UOPLOAD_IMAGE_FAILURE_PARAMETER_FAILURE);
//        }
//        partSkuService.updateByKey(sku, getMcStaff());
//        ResultDTO resultSuccess = ResultDTO.resultSuccess(PartDict.HINT_PART_UOPLOAD_IMAGE_SUCCESS);
//        resultSuccess.setId(imgUrl);
//        return resultSuccess;
//    }
//
//    @RequestMapping(value = "/importImage")
//    protected ResponseDTO importImage(@RequestParam("dir") String dir) {
//        if (StringUtil.isBlank(dir)) {
//            ResponseDTO.fail("dir is null");
//        }
//        File file = new File(dir);
//        String[] filelist = file.list();
//        List<String> sqlList = new ArrayList<>();
//        for (int i = 0; i < filelist.length; i++) {
//            String skuId = filelist[i];
//            File partFile = new File(dir + File.separator + skuId);
//            String[] partfileList = partFile.list();
//            String updateImgSql = "update part_sku set ";
//            String setImage = "";
//            for (int j = 0; j < partfileList.length; j++) {
//                String picName = partfileList[j];
//                File picFile = new File(dir + File.separator + skuId + File.separator + picName);
//                if (picName.contains("img1") || picName.contains("img2") || picName.contains("img3") || picName.contains("img4")) {
//                    String imgUrl = null;
//                    try {
//                        imgUrl = partUploadService.uploaderImage(picFile, picName, PartDict.PART_UPLOAD_IMAGES_PATH);
//                    } catch (FileUploadException e) {
//
//                    }
//                    if (StringUtil.isNotBlank(setImage)) {
//                        setImage += ",";
//                    }
//                    if (picName.contains("img1")) {
//                        setImage += "img_src='" + imgUrl + "'";
//                    } else if (picName.contains("img2")) {
//                        setImage += "img_src2='" + imgUrl + "'";
//                    } else if (picName.contains("img3")) {
//                        setImage += "img_src3='" + imgUrl + "'";
//                    } else if (picName.contains("img4")) {
//                        setImage += "img_src4='" + imgUrl + "'";
//                    }
//                }
//            }
//            updateImgSql += setImage + " where sku_id=" + skuId + ";";
//            sqlList.add(updateImgSql);
//        }
//        System.out.println("=================SQL=================");
//        for (String sql : sqlList) {
//            System.out.println(sql);
//        }
//        return ResponseDTO.success(true,"success");
//    }
//
//    /**
//     * 读取某个文件夹下的所有文件
//     */
//    public static List<File> readfile(String filepath, boolean dir) {
//        List<File> fileList = new ArrayList<>();
//        File file = new File(filepath);
//        if (!file.isDirectory()) {
//            System.out.println("文件");
//            System.out.println("path=" + file.getPath());
//            System.out.println("absolutepath=" + file.getAbsolutePath());
//            System.out.println("name=" + file.getName());
//        } else if (file.isDirectory()) {
//            if (dir) {
//                fileList.add(file);
//            } else {
//                System.out.println("文件夹");
//                String[] filelist = file.list();
//                for (int i = 0; i < filelist.length; i++) {
//                    File readfile = new File(filepath + "\\" + filelist[i]);
//                    if (!readfile.isDirectory()) {
//                        System.out.println("path=" + readfile.getPath());
//                        System.out.println("absolutepath=" + readfile.getAbsolutePath());
//                        System.out.println("name=" + readfile.getName());
//                        fileList.add(readfile);
//                    } else if (readfile.isDirectory()) {
//                        readfile(filepath + "\\" + filelist[i], false);
//                    }
//                }
//            }
//
//        }
//
//        return fileList;
//    }
//
//}
